0장. 한눈에 보기
출처: 『가상 면접 사례로 배우는 생성형 AI 시스템 설계』(알리 아미니안·알렉스 쉬 지음) | 참고: aliaminian.com/books
코드는 분위기만 — numpy·@·model.generate 같은 말은 몰라도 됩니다. 표의 '비유'와 '위험'만 봐도 충분해요.
이 책 큰 그림 5가지만
- 생성형 AI는 "분류기"가 아니라 "새로 만드는 기계"다. 보기 중에 고르는 게 아니라, 없던 문장·그림을 지어낸다.
- 그 지어내는 일의 정체는 "다음에 올 말 맞히기"다. 한 글자씩, 확률이 가장 그럴듯한 쪽으로 이어 붙인다.
- 면접에서 시스템을 설계할 때는 순서가 있다. 요구사항 → 문제 정의 → 데이터 → 모델 → 평가 → 전체 시스템 → 배포. 이 7칸을 차례로 채운다.
- 모델 하나만으론 시스템이 아니다. 앞에 입력 거르개(전처리), 뒤에 출력 거르개(후처리), 옆에 감시등(모니터링)이 붙어야 진짜 시스템이다.
- 2026년 현실에선 모델을 처음부터 만들지 않는다. 남이 만든 모델을 받아서 우리 일에만 살짝 더 가르친다. 처음부터 만드는 건 더 깊은 주제라, 지금은 몰라도 된다.
이 0장은 책 본문에 나오는 어려운 말을 미리 풀어 둔 곳이다.
뒤 장에서 막히면 여기로 돌아오면 된다.
용어집(0절)과 개념 척추가 전부다. 천천히 읽으면 된다.
0. 먼저 알아둘 말 (용어집)
이 절은 책 전체 용어의 단일 출처다.
본문 어디서 어려운 말이 나와도, 그 뜻은 전부 여기 적혀 있다.
각 용어는 [한 문장 뜻 + 일상비유 + 한 줄 예] 3종으로 적었다.
판별형 모델(discriminative model)
한 문장 뜻 — 입력을 보고 "이게 어느 쪽인가"를 골라 주는 모델.
일상비유 — 미술관 감별사. 그림을 보고 "이건 진품/가짜"만 판정한다. 새 그림은 못 그린다.
한 줄 예 —
# 리뷰를 받아 긍정/부정 둘 중 하나로 분류
model.predict("이 제품 좋아요") # → 1 (긍정)
생성형 모델(generative model)
한 문장 뜻 — 기존 데이터의 패턴을 배워 없던 데이터를 새로 만들어 내는 모델.
일상비유 — 화가. 피카소 화풍을 익혀, 피카소가 안 그린 새 그림을 그려 낸다.
한 줄 예 —
# "인공지능의 미래는" 뒤를 새 문장으로 지어냄
generator("인공지능의 미래는") # → "...매우 밝다. 다양한 산업에서..."
토큰(token)
한 문장 뜻 — 모델이 글을 다룰 때 쓰는 한 조각. 단어보다 작거나 같은 단위다.
일상비유 — 레고 블록. 문장은 통짜가 아니라 작은 블록들을 이어 붙인 것이다.
한 줄 예 —
# "unhappily" 한 단어가 의미 조각 셋으로 쪼개짐
enc.encode("unhappily") # → ['un', 'happ', 'ily']
확률 분포(probability distribution)
한 문장 뜻 — 여러 후보 각각에 "이게 나올 가능성"을 숫자로 매겨 놓은 표(다 더하면 1).
일상비유 — 일기예보. "맑음 60%, 흐림 30%, 비 10%". 합치면 100%다.
한 줄 예 —
# 다음에 올 단어 후보별 가능성 (합=1)
probs = [0.35, 0.30, 0.20, 0.10, 0.05] # 고양이가 35%로 가장 유력
softmax(소프트맥스)
한 문장 뜻 — 아무 숫자 목록을 "다 더하면 1이 되는 확률 표"로 바꿔 주는 변환기.
일상비유 — 시험 원점수를 백분율 비중으로 환산하는 일. 큰 점수는 더 큰 비중으로 부풀려 준다.
한 줄 예 —
# 원시 점수 [2.0, 1.0, 0.1] → 확률 [0.66, 0.24, 0.10]
probs = softmax([2.0, 1.0, 0.1])
어텐션(attention) / 셀프 어텐션(self-attention)
한 문장 뜻 — 문장 속 각 단어가 다른 어떤 단어와 더 관련 있는지 점수를 매겨 거기에 집중하는 방식.
일상비유 — 독서 모임 토론. "은행"이란 말이 "돈"과 눈을 맞추면 금융기관, "강둑"과 맞추면 강가로 읽힌다.
한 줄 예 —
# "은행"이 "돈"·"앉았다" 중 누구와 더 관련 큰지 점수
np.dot(q_은행, k_돈) # 점수 높음 → 금융기관으로 해석
트랜스포머(transformer)
한 문장 뜻 — 어텐션을 핵심 부품으로 쓰는, 요즘 생성형 AI 거의 전부의 밑바탕 구조.
일상비유 — 현대 자동차의 공용 엔진 플랫폼. GPT도 Llama도 이 엔진 위에 만든다.
한 줄 예 —
# 요즘 모델은 거의 다 이 구조 위에 올라가 있음
AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.2-3B")
매개변수(parameter)
한 문장 뜻 — 모델이 학습하면서 조금씩 맞춰 가는 내부 손잡이 값. 많을수록 더 복잡한 일을 한다.
일상비유 — 라디오의 수많은 다이얼. 다이얼을 잘 맞춰야 깨끗한 소리가 나온다. 큰 모델은 다이얼이 수천억 개다.
한 줄 예 —
# 학습으로 맞춰 가는 값들의 개수 = 모델 크기
all_params = 3_216_215_040 # 약 32억 개(3B 모델)
사전 학습(pretraining)
한 문장 뜻 — 거대한 데이터로 일반적인 말솜씨를 먼저 통째로 익히는 첫 단계.
일상비유 — 초·중·고 12년 의무교육. 특정 직업이 아니라 읽기·쓰기·상식 같은 기초를 폭넓게 쌓는다.
한 줄 예 —
# 처음부터 안 하고, 이미 끝난 모델을 통째로 받아 옴
snapshot_download("meta-llama/Llama-3.2-3B")
미세 조정(finetuning)
한 문장 뜻 — 사전 학습으로 기본기를 갖춘 모델에게 우리 일만 콕 집어 더 가르치는 단계.
일상비유 — 12년 교육 마친 사람을 회사 신입 연수로 "우리 업무"에 맞게 다듬는 것.
한 줄 예 —
# 일반 모델을 '이메일 쓰기'에 맞게 추가로 가르침
trainer.train() # 이메일 데이터로 미세 조정
환각(hallucination)
한 문장 뜻 — 모델이 사실이 아닌 것을 아주 그럴듯하고 자신 있게 말해 버리는 현상.
일상비유 — 모르는 걸 들켜선 안 된다고 믿는 허세 가득한 친구. 막힘없이 답하지만 틀린 말일 수 있다.
한 줄 예 —
# 1750억이 맞는데 모델이 5000억이라 자신만만하게 말함
"GPT-3는 5000억 개의 매개변수를 가집니다" # 틀림 = 환각
자기 지도 학습(self-supervised learning)
한 문장 뜻 — 사람이 정답표를 안 붙여도, 데이터 그 자체로 문제와 답을 만들어 배우는 방식.
일상비유 — 빈칸 채우기 퀴즈. "나는 오늘 ___에서 밥을 먹었다"의 빈칸을 가리고 스스로 맞히며 배운다.
한 줄 예 —
# 문장의 앞부분을 보고 다음 단어를 스스로 맞히며 학습
"나는 오늘 학교에서" → 예측 대상: "수학을"
오프라인 평가 vs 온라인 평가(offline vs online evaluation)
한 문장 뜻 — 배포 전에 미리 모아 둔 시험지로 채점하면 오프라인, 배포 후에 진짜 사용자 반응으로 채점하면 온라인.
일상비유 — 오프라인 = 요리 대회 심사위원 점수. 온라인 = 실제 손님의 재방문율·매출.
한 줄 예 —
offline = perplexity.compute(...) # 배포 전, 정해진 지표
online = "수락률 25%, 클릭률 ..." # 배포 후, 실제 사용자
전처리 vs 후처리(preprocessing vs postprocessing)
한 문장 뜻 — 모델에 넣기 전에 입력을 거르면 전처리, 모델이 뱉은 뒤에 출력을 거르면 후처리.
일상비유 — 식당 주방. 들어오는 재료를 씻는 게 전처리, 나가는 접시를 점검하는 게 후처리.
한 줄 예 —
clean = preprocess(user_input) # 들어오는 입력 거르개
safe = postprocess(model_output) # 나가는 출력 거르개
개념 척추
여기 7개는 책 전체를 관통하는 큰 줄기다.
각각 ①망가지는 장면 ②일상비유 ③비유·코드·위험 표 ④한 문장 정의 순서다.
척추 1 — 판별형 vs 생성형 (고르기 vs 짓기)
망가지는 장면
"챗봇을 만들어라"는 문제에 분류 모델을 골랐다가 막힌 적 있죠?
분류기는 보기 중에 고를 뿐, 새 문장을 못 만든다. 문제 종류부터 잘못 잡은 것이다.
일상비유
감별사(판별형)는 "진품이냐 가짜냐"만 판정한다.
화가(생성형)는 새 그림을 그려 낸다. 챗봇·이미지 생성은 화가의 일이다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 감별사(판별형) | model.predict(리뷰) # 긍정/부정 |
새 콘텐츠를 못 만듦 |
| 화가(생성형) | generator("인공지능의 미래는") |
만들 줄은 알지만 틀린 말도 지어냄 |
한 문장 정의 — 판별형은 입력을 보기 중 하나로 고르는 모델, 생성형은 없던 데이터를 새로 짓는 모델이며, 문제 종류를 먼저 가르는 것이 설계의 출발점이다.
척추 2 — 다음 토큰 예측 (한 글자씩 잇기)
망가지는 장면
"AI가 문장을 통째로 한 번에 떠올린다"고 믿으면, 왜 글자 단위로 천천히 나오는지 이해가 안 간다.
사실 모델은 다음에 올 한 조각만 반복해서 맞힌다. 그게 전부다.
일상비유
끝말잇기. 지금까지 나온 말을 보고 가장 그럴듯한 다음 말을 하나 댄다.
그 한 마디를 붙인 뒤, 다시 또 다음 한 마디를 댄다. 이걸 끝까지 반복한다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 끝말잇기 한 수 | "나는 오늘 학교에서" → "수학을" |
한 칸 잘못 고르면 이후가 다 휘어짐 |
| 가장 그럴듯한 후보 | probs = [0.35, 0.30, ...] # 합=1 |
"그럴듯함"이 "사실"은 아님(→환각) |
한 문장 정의 — 생성형 언어 모델의 정체는 지금까지의 말을 보고 다음 토큰 하나를 확률로 맞히는 일을 끝까지 반복하는 것이다.
척추 3 — 7단계 설계 프레임워크 (순서대로 칸 채우기)
망가지는 장면
면접에서 "이미지 생성 시스템 설계하라" 듣자마자 모델 이름부터 댔다가, 뒤죽박죽이 됐다.
순서 없이 떠오르는 대로 말하면, 빠뜨린 칸이 생기고 논리가 무너진다.
일상비유
집 짓기. 상담(요구사항) → 도면(문제 정의) → 자재(데이터) → 시공(모델) → 안전검사(평가) → 배관·전기 통합(전체 시스템) → 입주·유지보수(배포).
칸을 순서대로 채우면 빠짐이 없다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 집 짓는 7단계 | ["요구사항","문제정의","데이터","모델","평가","시스템","배포"] |
순서 건너뛰면 칸이 빔 |
| 도면부터 그리기 | select_approach("이미지", ...) |
자재(데이터) 없이 시공 불가 |
한 문장 정의 — 생성형 AI 시스템 설계 면접은 요구사항→문제 정의→데이터→모델→평가→전체 시스템→배포의 7칸을 순서대로 채우는 일이다.
척추 4 — 요구사항 구체화 (바로 풀지 말고 먼저 묻기)
망가지는 장면
"파스타 주세요"에 바로 토마토 파스타를 내갔더니, 손님은 크림을 원했다.
면접관이 "이미지 생성 만들어 보라" 했을 때 바로 설계하면, 엉뚱한 걸 만들 위험이 크다.
일상비유
주문 받기. 어떤 면? 매운맛? 사이즈? 먼저 묻는다.
질문으로 범위를 좁히는 행동 자체가 좋은 점수다. 바로 설계하는 게 아니다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 주문 전 되묻기 | clarification_questions = {"규모":..., "안전성":...} |
안 물으면 범위 어긋남 |
| 바로 메뉴 결정 | "VAE 쓰겠습니다" # 질문 0 |
잘못된 가정 위에 전부 쌓임 |
한 문장 정의 — 설계의 첫걸음은 풀이가 아니라 질문이며, 기능·규모·성능·안전 같은 범위를 되물어 모호함을 먼저 걷어 내는 것이다.
척추 5 — 평가: 오프라인 vs 온라인 (시험점수 vs 손님반응)
망가지는 장면
오프라인 지표(Perplexity)만 좋다고 안심했는데, 막상 출시하니 사용자가 제안을 안 눌렀다.
시험 점수가 높아도 손님이 안 오면 의미가 없다. 두 평가는 보는 게 다르다.
일상비유
오프라인 = 요리 대회 심사위원 점수(정해진 기준, 배포 전).
온라인 = 진짜 손님의 재방문율·매출(실제 반응, 배포 후). 둘 다 봐야 한다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 심사위원 점수(오프라인) | perplexity.compute(...) |
점수만 보면 현장 반응을 놓침 |
| 손님 재방문(온라인) | "수락률 25%, 클릭률 ..." |
배포 전엔 알 수 없음 |
한 문장 정의 — 모델 평가는 배포 전 정량 지표로 보는 오프라인 평가와 배포 후 실제 사용자 반응으로 보는 온라인 평가 둘로 나뉘며, 한쪽만으론 충분치 않다.
척추 6 — 모델은 부품일 뿐, 시스템은 따로 (앞뒤 거르개 + 감시등)
망가지는 장면
좋은 모델 하나 붙였더니, 악의적 입력이 그대로 들어가고 유해한 출력이 그대로 나갔다.
모델만으론 시스템이 아니다. 들어오는 것·나가는 것을 거르고 지켜보는 장치가 빠진 탓이다.
일상비유
자동차. 엔진(모델)만으론 못 달린다.
연료 필터(전처리)로 나쁜 입력을 거르고, 배기 필터(후처리)로 유해 출력을 정화하고, 계기판 경고등(모니터링)으로 이상을 알아챈다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 엔진(모델 단독) | generate(input) |
입력·출력이 무방비 |
| 연료 필터(전처리) | preprocess(user_input) |
없으면 악성 입력 통과 |
| 배기 필터+경고등(후처리·감시) | postprocess(out); monitor() |
없으면 유해 출력·장애를 놓침 |
한 문장 정의 — 핵심 모델은 부품 하나일 뿐이고, 전처리·후처리·모니터링까지 묶어야 비로소 하나의 생성형 AI 시스템이 된다.
척추 7 — 처음부터 만들지 않는다 (받아서 살짝 더 가르치기)
망가지는 장면
"우리도 모델을 처음부터 학습시키자"고 덤볐다가, GPU 비용과 시간 앞에서 멈췄다.
처음부터 학습은 거대 기업의 영역이다. 작은 팀이 따라 하면 자원이 먼저 바닥난다.
일상비유
이미 대학까지 마친 사람을 채용해, 우리 회사 업무만 신입 연수로 짧게 가르치는 것.
12년 교육(사전 학습)은 남이 해 둔 걸 받고, 우리 일(미세 조정)만 더한다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 교육 마친 사람 채용(사전 학습 받기) | snapshot_download("...Llama-3.2-3B") |
처음부터 학습은 비용 폭발 |
| 신입 연수(미세 조정) | trainer.train() # 우리 데이터만 |
안 하면 우리 일엔 안 맞음 |
한 문장 정의 — 2026년 현실에서 모델은 남이 사전 학습한 것을 받아 와 우리 과제에만 미세 조정하는 것이 기본이며, 처음부터 학습하는 건 거대 기업의 영역이다.
한 걸음 더 ▸ (지금 몰라도 됨)
지금은 큰 그림 하나면 충분하다. 생성형 AI = "다음 토큰 맞히기를 7단계로 잘 감싼 시스템"이다.
빔 검색·LoRA·vLLM·RoPE 같은 도구 이름은 본문에서 천천히 나온다. 지금 외울 필요 없다.
지금은 "고르기 vs 짓기 / 다음 토큰 / 7단계" 셋만 들고 가면 된다.
사이드박스 — 이름 한 조각 (흥미용)
트랜스포머(transformer)를 세상에 알린 2017년 논문 제목은 「Attention Is All You Need」 — "필요한 건 어텐션뿐"이다.
즉 이 책 거의 모든 모델의 뿌리에 '어텐션'이라는 한 아이디어가 있다. 외워 둘 필요는 없다.
부록 박스 — 옛 방식 한 조각 (참고용, 건너뛰어도 됨)
트랜스포머 이전엔 RNN(LSTM·GRU)이 토큰을 하나씩 줄 세워 처리했다. 길어지면 앞 내용을 잊는 '기울기 소실' 문제가 있었다.
어텐션은 모든 토큰을 한 번에 보며 멀리 떨어진 단어끼리도 연결한다. 그래서 요즘 모델은 거의 다 트랜스포머다. 본문 코드는 전부 Python으로만 본다.
다음 장 예고
다음 1장에서는 생성형 AI가 정확히 무엇인지, 왜 지금 이렇게 강력해졌는지, 그리고 7단계 설계 프레임워크를 처음부터 끝까지 본다.
지금 0장 용어와 척추만 머리에 있으면 충분하다. 나머지는 1장에서 천천히 다룬다.
클릭하거나 Space를 눌러 뒤집기